import 'package:flutter/material.dart';
// import 'package:flutter/rendering.dart';
import 'package:flutter_shop/dao/home_dao.dart';
import 'package:flutter_shop/model/home_model.dart';
import 'package:flutter_swiper_plus/flutter_swiper_plus.dart';

// 首页
class Home extends StatefulWidget {
  const Home({Key? key}) : super(key: key);

  @override
  State<Home> createState() => _HomeState();
}

class _HomeState extends State<Home> {
  List<SwiperList> swiperList = [];
  List<Tabs> tabsList = [];
  int currentIndex = 0;

  final ScrollController _controller = ScrollController();
  // 商品集合
  var goodsLit = [
    {
      "url": "images/1.jpeg",
      "price": 69,
      "title": "灭菌吸塑纱布夹棉生活用品生活用品生活用品生活用品生活用品灭菌吸塑纱布夹棉",
      "desc":"商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述vv述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述商品描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述其他描述"
    },
    {"url": "images/2.jpeg", "price": 129, "title": "婴儿包被", "desc":"商品描述1111111111111111111111111111"},
    {"url": "images/3.jpeg", "price": 57, "title": "洗脸巾", "desc":"商品描述2222222222222222"},
    {"url": "images/4.jpeg", "price": 269, "title": "睡衣", "desc":"商品描述3333333333"},
    {"url": "images/5.jpeg", "price": 88, "title": "毛巾", "desc":"商品描述444444444"},
  ];

  // 页面初始化
  @override
  void initState() {
    super.initState();
    // 获取首页数据
    _getDataList();
  }

  @override
  void dispose() {
    super.dispose();
    // 销毁
  }

  //首页
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        controller: _controller,
        children: [
          _banner,
          _tabs,
          //  商品列表
          ShowGoosList(
            goods: goodsLit,
            controller:_controller,
          )
        ],
      ),
    );
  }

// 初始化获取数据
  Future<void> _getDataList() async {
    try {
      HomeModel homeModel = await HomeDao.getDataList();
      setState(() {
        swiperList = homeModel.swiperList;
        tabsList = homeModel.tabsList;
      });
    } catch (e) {
      // ignore: avoid_print
      print(e);
    }
  }

// 轮播图
  Widget get _banner {
    return SizedBox(
      width: double.infinity,
      height: 166,
      child: Swiper(
        itemCount: swiperList.length,
        // 自动播放
        autoplay: false,
        loop: true,
        itemBuilder: (BuildContext context, int index) {
          return GestureDetector(
            onTap: () {},
            child: Image.network(
              swiperList[index].url,
              fit: BoxFit.cover,
            ),
          );
        },
        onIndexChanged: (index) {
          // print(index);
          setState(() {
            currentIndex = index;
          });
        },
      ),
    );
  }

// 分类区域
  Widget get _tabs {
    List<Widget> list = [];

    for (var item in tabsList) {
      list.add(Container(
        width: 90,
        // height: 80,
        margin: const EdgeInsets.fromLTRB(0, 10, 0, 5),
        child: Column(children: [
          Image.network(
            item.url,
            width: 70,
          ),
          Text(item.title)
        ]),
      ));
    }
    return Container(
      width: double.infinity,
      height: 120,
      child: ListView(
          // 水平方向排列
          scrollDirection: Axis.horizontal,
          children: list),
    );
  }

// 商品展示
  // Widget get _price {
  //   return Column(
  //     children: goodsLit.map((Map map) {
  //       return Container(
  //         width: double.infinity,
  //         height: 130,
  //         margin: const EdgeInsets.fromLTRB(10, 10, 10, 0),
  //         decoration: const BoxDecoration(
  //             border: Border(bottom: BorderSide(color: Colors.grey))),
  //         child: InkWell(
  //             onTap: () {
  //               print("点击...");
  //             },
  //             child: Column(
  //               children: [
  //                 Row(
  //                   // 排序顺序
  //                   textDirection: TextDirection.ltr,
  //                   // 开始方向 若mainAxisSize为min则没有意义
  //                   mainAxisAlignment: MainAxisAlignment.spaceBetween,
  //                   // mainAxisSize: MainAxisSize.min,
  //                   // 纵轴默认居中
  //                   crossAxisAlignment: CrossAxisAlignment.center,
  //                   children: [
  //                     Expanded(
  //                       child: Image.asset(
  //                         map["url"],
  //                         fit: BoxFit.cover,
  //                         // 图片不重复
  //                         repeat: ImageRepeat.noRepeat,
  //                       ),
  //                       flex: 1,
  //                     ),
  //                     const SizedBox(
  //                       width: 20,
  //                     ),
  //                     Expanded(
  //                       child: Flex(
  //                         direction: Axis.vertical,
  //                         mainAxisAlignment: MainAxisAlignment.spaceAround,
  //                         children: [
  //                           Text(
  //                             map["title"],
  //                             style: const TextStyle(
  //                               fontSize: 23,
  //                               fontWeight: FontWeight.bold,
  //                             ),
  //                             maxLines: 2,
  //                             overflow: TextOverflow.ellipsis,
  //                           ),
  //                           Text(
  //                             "￥" + map["price"].toString(),
  //                             style: const TextStyle(
  //                               fontSize: 20,
  //                               color: Colors.red,
  //                             ),
  //                           )
  //                         ],
  //                       ),
  //                       flex: 2,
  //                     )
  //                   ],
  //                 ),
  //               ],
  //             )),
  //       );
  //     }).toList(),
  //   );
  // }
}
